Make select inactive modules unreachable #7355
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rationale
Many modules don't make sense to access in a container if they're not enabled and intended to be used. Mothership is a good example. We've long hidden their schemas, but they've still been accessible via their controllers and the More Modules admin menu.
We can prevent them from being accessible and eliminate strange behavior, like grids where you can't export or create reports.
This was "discovered" by the crawler in automated tests now that the crosstab report gives a proper 404 when it's accessed with a reference to a schema or query that doesn't exist in the container.
Changes
Module.isAvailableOnlyWhenActive()to let modules indicate they don't want to be accessed when not active in the container. Default is to remain accessible.Tasks 📍
genotyping-begin.view,mothership-begin.view, andfeature-annotationset-manage.viewgive a 404 with a message about the module not being active.